首先,  数据库中存放图片的字段必须为Image类型。 

一、图像插入到数据库

以下代码为示意将图片插入到数据库中的操作,图片字段为Material

//从上传控件中得到表示图片的字节流 

Byte[] be = this.FileUpload1.FileBytes;

//执行SQL,插入一条包括图片的记录,图片字段暂不写入数据

string sconn = "Data Source=(local);Initial Catalog=IKartoon_MainBusiness;Persist Security Info=T" +

            "rue;User ID=sa;Password=goodfortune";

        SqlConnection conn = new SqlConnection(sconn);

        SqlCommand comm = new SqlCommand();

        comm.Connection = conn;

        conn.Open();

        string strSQL = "insert into material(id,name,code,categoryID,orderid,operateDate)" +

            "values('{0}','{1}','{2}','{3}','{4}','{5}')";

        string strIn = string.Format(strSQL,

            "7BAB9BBA-487C-4178-BD5B-A08ED28D3380",

            "111",

            "1111",

            "7BAB9BBA-487C-4178-BD5B-A08ED28D33A6",

            1,

            System.DateTime.Now

            );

        comm.CommandText = strIn;

        comm.ExecuteNonQuery();

          //对刚才新增的记录进行修改,将图片加入,建议使用Parameter方式

        string innn = "update material set material=@material where id='7BAB9BBA-487C-4178-BD5B-A08ED28D3380'";

        SqlParameter pa = new SqlParameter("@material", SqlDbType.Image);

        pa.Value = be;

        comm.CommandText = innn;

        comm.Parameters.Add(pa);

        comm.ExecuteNonQuery();

二、图像在页面中显示

            
以下代码为从数据库中将图片取得,图片字段为Material,并且在Image控件中显示,显示是通过ImageUrl来设置,所以得到的图片在文件系统中要存储一下,将图片的URL传递给Image控件.

string sel = "select material from material";

        comm.CommandText = sel;

        SqlDataReader reader= comm.ExecuteReader();

        byte[] resultImage=null;

        while (reader.Read())

        {

            resultImage =(byte[]) reader.GetValue(0);

        }

        string dir=MapPath("TempImage");

        string path=dir+@""imageName.gif";

        File.WriteAllBytes(path,resultImage );

    this.Image1.ImageUrl = "tempImage/abadsc.gif";

posted on 2007-09-27 16:16  Hi Jew  阅读(756)  评论(0编辑  收藏  举报